.TH std::atomic_flag_clear,std::atomic_flag_clear_explicit 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::atomic_flag_clear,std::atomic_flag_clear_explicit \- std::atomic_flag_clear,std::atomic_flag_clear_explicit

.SH Synopsis
   Defined in header <atomic>
   void atomic_flag_clear( volatile std::atomic_flag* obj ) noexcept; \fB(1)\fP \fI(since C++11)\fP
   void atomic_flag_clear( std::atomic_flag* obj ) noexcept;          \fB(2)\fP \fI(since C++11)\fP
   void atomic_flag_clear_explicit( volatile std::atomic_flag* obj,
                                    std::memory_order order )         \fB(3)\fP \fI(since C++11)\fP
   noexcept;
   void atomic_flag_clear_explicit( std::atomic_flag* obj,
                                    std::memory_order order )         \fB(4)\fP \fI(since C++11)\fP
   noexcept;

   Atomically changes the state of the std::atomic_flag pointed to by obj to clear
   (false).

   1,2) The memory synchronization ordering is std::memory_order_seq_cst.
   3,4) The memory synchronization ordering is order.
   If order is one of std::memory_order_consume, std::memory_order_acquire and
   std::memory_order_acq_rel, the behavior is undefined.

.SH Parameters

   obj   - pointer to std::atomic_flag to access
   order - the memory synchronization ordering

.SH Notes

   std::atomic_flag_clear and std::atomic_flag_clear_explicit can be implemented as
   obj->clear() and obj->clear(order) respectively.

   Defect reports

   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.

      DR    Applied to          Behavior as published              Correct behavior
   LWG 2138 C++11      order could be std::memory_order_consume the behavior is
                                                                undefined in this case

.SH See also

   atomic_flag                       the lock-free boolean atomic type
   \fI(C++11)\fP                           \fI(class)\fP
   atomic_flag_test_and_set          atomically sets the flag to true and returns its
   atomic_flag_test_and_set_explicit previous value
   \fI(C++11)\fP                           \fI(function)\fP
   \fI(C++11)\fP
   memory_order                      defines memory ordering constraints for the given
   \fI(C++11)\fP                           atomic operation
                                     \fI(enum)\fP
   C documentation for
   atomic_flag_clear,
   atomic_flag_clear_explicit
